package com.codegen.enums;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonFormat.Shape;

import lombok.Getter;

/**
 * @author LZCXTECH06
 * @date 2019年9月11日
 */
@JsonFormat(shape = Shape.OBJECT)
@Getter
public enum WidgetType {

    /**
     * 单行文本
     */
    Input("单行文本", false),

    /**
     * 多行文本
     */
    Textarea("多行文本", false),

    /**
     * 富文本编辑器
     */
    RichText("富文本编辑器", false),

    /**
     * 下拉选项
     */
    Select("下拉选项", true),

    /**
     * 单选按钮
     */
    Radio("单选按钮", true),

    /**
     * 开关
     */
    Switch("开关", true),

    /**
     * 复选框
     */
    Checkbox("复选框", true),

    /**
     * 日期选择
     */
    DatePicker("日期选择", false),

    /**
     * 时间选择
     */
    TimePicker("时间选择", false),

    /**
     * 用户选择
     */
    UserPicker("用户选择", false),

    /**
     * 区域选择
     */
    AreaPicker("区域选择", false),

    /**
     * 树选择控件
     */
    TreePicker("树选择控件", false),
    /**
     * 单个图片上传
     */
    SingleImg("单图上传",false),

    /**
     * 文件上传选择
     */
    MultipleImg("多图片上传",false),
    /**
     * 文件上传选择
     */
    Upload("文件上传选择",false),

    /**
     * 颜色选择器
     */
    ColorPicker("颜色选择器",false),

    /**
     * 穿梭框
     */
    Transfer("穿梭框",false),

    /**
     * 级联选择器
     */
    Cascader("级联选择器",false),

    /**
     * 级联选择器
     */
    Text("只读文本",false);

    private WidgetType(String desc, boolean needOpts) {
        this.desc = desc;
        this.needOpts = needOpts;
    }

    private String desc;

    /**
     * 是否需要设置参数
     */
    private boolean needOpts;

    public String getName() {
        return name();
    }
}
